The Multiprotocol Label Switching (MPLS) protocol, defined in Internet Engineering Task Force (IETF) RFC 3031, is a protocol that combines the label-based forwarding of asynchronous transfer mode (ATM) networks with the packet-based forwarding of Internet Protocol (IP) networks, and builds applications upon this infrastructure. Traditional MPLS, and more recently Generalized MPLS (G-MPLS) networks as well, extend the suite of IP protocols to expedite the forwarding scheme used by conventional IP routers, particularly through core networks employed by service providers (as opposed to end-user connections or taps). Conventional routers typically employ complex and time-consuming route lookups and address matching schemes to determine the next hop for a received packet, primarily by examining the destination address in the header of the packet. MPLS simplifies this operation by basing the forwarding decision on a simple label, via a so-called Label Switched Router (LSR) mechanism. Therefore, another major feature of MPLS is its ability to place IP traffic on a particular defined path through the network as specified by the label. Such path specification capability is generally not available with conventional IP traffic. This type of path is known as a label switched path.
A label switched path specifies not only a destination, but also specific routes (router nodes) along a path, thus simplifying routing decisions at each individual hop. Put another way, the label switched path raises the level of granularity, or atomicity, of the conventional IP routing hop from a single router to an entire path through the network. This path includes multiple routers (i.e. granularity, or atomicity, of the conventional IP routing hop from a single router to an entire path through the network. This path includes multiple routers (i.e. “hops”) and other switching entities, and typically spans an MPLS network, though may represent other device-to-device paths as well.
Upon entry to an MPLS network, an MPLS-specific header is inserted at the front of each packet to, in effect, re-encapsulate it. The MPLS header contains a stack of labels—one or more—that uniquely identify the switching path between any two LSRs. This label tells adjacent switching nodes how to process and forward the data. As each packet is received by a node, it may push a new label onto the stack of a packet before forwarding it on, pop one from the stack, or swap one or more of the labels with new ones. The path of the packet through the network is defined by its initial labeling. Accordingly, the subsequent mapping of labels is consistent at each node so as to form a complete label switched path between the ingress to and the egress from the MPLS network.